// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.nostra13.universalimageloader.cache.memory.impl;
import android.graphics.Bitmap;
import com.nostra13.universalimageloader.cache.memory.LimitedMemoryCache;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class UsingFreqLimitedMemoryCache extends LimitedMemoryCache
{
private final Map a = Collections.synchronizedMap(new HashMap());
public UsingFreqLimitedMemoryCache(int i)
{
super(i);
}
public void clear()
{
a.clear();
super.clear();
}
protected Reference createReference(Bitmap bitmap)
{
return new WeakReference(bitmap);
}
public Bitmap get(String s)
{
Bitmap bitmap = super.get(s);
if (bitmap != null)
{
Integer integer = (Integer)a.get(bitmap);
if (integer != null)
{
a.put(bitmap, Integer.valueOf(1 + integer.intValue()));
}
}
return bitmap;
}
public volatile Object get(Object obj)
{
return get((String)obj);
}
protected int getSize(Bitmap bitmap)
{
return bitmap.getRowBytes() * bitmap.getHeight();
}
public volatile boolean put(Object obj, Object obj1)
{
return put((String)obj, (Bitmap)obj1);
}
public boolean put(String s, Bitmap bitmap)
{
boolean flag = super.put(s, bitmap);
boolean flag1 = false;
if (flag)
{
a.put(bitmap, Integer.valueOf(0));
flag1 = true;
}
return flag1;
}
public volatile void remove(Object obj)
{
remove((String)obj);
}
public void remove(String s)
{
Bitmap bitmap = super.get(s);
if (bitmap != null)
{
a.remove(bitmap);
}
super.remove(s);
}
protected Bitmap removeNext()
{
Bitmap bitmap;
Set set;
bitmap = null;
set = a.entrySet();
Map map = a;
map;
JVM INSTR monitorenter ;
Iterator iterator = set.iterator();
Integer integer = null;
_L2:
java.util.Map.Entry entry;
if (!iterator.hasNext())
{
break MISSING_BLOCK_LABEL_131;
}
entry = (java.util.Map.Entry)iterator.next();
if (bitmap != null)
{
break MISSING_BLOCK_LABEL_83;
}
Bitmap bitmap1;
Integer integer1;
bitmap1 = (Bitmap)entry.getKey();
integer1 = (Integer)entry.getValue();
break MISSING_BLOCK_LABEL_160;
Integer integer2;
Bitmap bitmap2;
integer2 = (Integer)entry.getValue();
if (integer2.intValue() >= integer.intValue())
{
break MISSING_BLOCK_LABEL_153;
}
bitmap2 = (Bitmap)entry.getKey();
integer1 = integer2;
bitmap1 = bitmap2;
break MISSING_BLOCK_LABEL_160;
map;
JVM INSTR monitorexit ;
a.remove(bitmap);
return bitmap;
Exception exception;
exception;
map;
JVM INSTR monitorexit ;
throw exception;
bitmap1 = bitmap;
integer1 = integer;
bitmap = bitmap1;
integer = integer1;
if (true) goto _L2; else goto _L1
_L1:
}
}